java visual studio add-in refactoring c++ php critical software defects jsp j2ee development .net asp static code analysis source code analysis